// 对axios进行二次封装

// 1.基地址
// 2.transformResponse：对bigint处理
// 3.请求拦截器：加token

import axios from 'axios'
// 在一个普通js文件中，如何去获取vuex中的数值
// 答：直接引入
import store from '../src/store/index'
import JSONBig from 'json-bigint'
axios.defaults.baseURL = 'http://ttapi.research.itcast.cn' // 基地址
const instance1 = axios.create({
  baseURL: 'http://ttapi.research.itcast.cn',
  //   timeout: 1000,
  //   headers: { '': '' }
  transformResponse: [function (data) {
  // 由于后端返回的数据有出现大数问题（文章编号）,这里使用json-bigint处理一下
  // 优先使用JSONBig转一下
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data
    }
  }]
})
const instance2 = axios.create({
  baseURL: 'http://api-toutiao-web.itheima.net'
  //   timeout: 1000,
  //   headers: { '': '' }
})
instance1.interceptors.request.use(function (config) {
  const token = store.state.tokenInfo.token
  if (token) {
    // 加到header
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
})
export {
  instance1,
  instance2
}
export default instance1
